// pages/category/category.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    categoryList: [], // 分类列表
    currentCategoryIndex: 0, // 当前选中的主分类索引
    currentSubCategories: [], // 当前主分类下的子分类列表
    currentSubCategoryIndex: -1, // 当前选中的子分类索引，-1表示未选中
    currentProducts: [], // 当前子分类下的商品列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadCategoryData();
  },

  /**
   * 加载分类数据
   */
  loadCategoryData() {
    wx.request({
      url: "http://47.94.6.186:3001/api/category/list",
      method: "GET",
      success: (res) => {
        console.log("分类数据:", res.data);
        const categoryData = res.data.data || [];
        const firstCategory = categoryData.length > 0 ? categoryData[0] : null;
        const firstSubCategories = firstCategory
          ? firstCategory.children || []
          : [];
        const firstSubCategory =
          firstSubCategories.length > 0 ? firstSubCategories[0] : null;

        this.setData({
          categoryList: categoryData,
          currentSubCategories: firstSubCategories,
          currentSubCategoryIndex: firstSubCategories.length > 0 ? 0 : -1,
          currentProducts: firstSubCategory
            ? firstSubCategory.children || []
            : [],
        });
      },
      fail: (err) => {
        console.error("加载分类数据失败:", err);
        wx.showToast({
          title: "加载失败",
          icon: "none",
        });
      },
    });
  },

  /**
   * 切换主分类
   * @param {Object} e 事件对象
   */
  switchCategory(e) {
    const index = e.currentTarget.dataset.index;
    const selectedCategory = this.data.categoryList[index];
    const subCategories = selectedCategory.children || [];
    const firstSubCategory = subCategories.length > 0 ? subCategories[0] : null;

    this.setData({
      currentCategoryIndex: index,
      currentSubCategories: subCategories,
      currentSubCategoryIndex: subCategories.length > 0 ? 0 : -1, // 自动选择第一个子分类
      currentProducts: firstSubCategory ? firstSubCategory.children || [] : [], // 显示第一个子分类的商品
    });
  },

  /**
   * 选择子分类
   * @param {Object} e 事件对象
   */
  selectSubCategory(e) {
    const index = e.currentTarget.dataset.index;
    const selectedSubCategory = this.data.currentSubCategories[index];

    this.setData({
      currentSubCategoryIndex: index,
      currentProducts: selectedSubCategory.children || [],
    });
  },

  /**
   * 点击商品项
   * @param {Object} e 事件对象
   */
  onProductTap(e) {
    const index = e.currentTarget.dataset.index;
    const product = this.data.currentProducts[index];

    // 这里可以根据实际需求跳转到商品详情页或商品列表页
    console.log("点击商品:", product);

    // 示例：跳转到商品列表页（需要根据实际页面路径调整）
    // wx.navigateTo({
    //   url: `/pages/productList/productList?categoryId=${product.cat_id}&categoryName=${product.cat_name}`
    // });

    // 暂时显示提示
    wx.showToast({
      title: `点击了${product.cat_name}`,
      icon: "none",
      duration: 1500,
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
});
